public bool SetStringValue(
DicomElement element,
string[] value
)
public:
bool SetStringValue(
DicomElement^ element,
array<String^>^ value
)
element
An item in the Data Set.
value
Character string that contains the string value(s) to set. If you want to set multiple values in the Value Field, put all string values in this array.
true if the string value(s) were set successfully. false if could not set the string value(s) of the Data Element.
This overload of SetStringValue differs from other versions (SetStringValue) in that it is missing the last argument (DicomCharacterSetType). This overload is affected by the value(s) in the Specific Character Set (0008,0005) Attribute.
The following DICOM Value Representations are affected by Attribute Specific Character Set (0008,0005)
If element is one of these Value Representations and the string cannot be represented using the standard character set (ASCII characters), then this overload attempts to encode the string using one or character sets stored in the Specific Character Set Attribute (0008,0005). Before calling this method with unicode strings, make sure that the Specific Character Set Attribute of the DicomDataSet contains values for any character set that is necessary. For example, when encoding a japanese string the following are some of the possible values for specific character:
For more information, see Part 3 section 'C.12.1.1.2 Specific Character Set' of the DICOM Specification. If more than one value is stored in the Value Field of the Data Element, you must set all values at the same time. This method can be called only if the Value Representation of the Data Element is:
For more information about Value Representations, refer to Default Value Representation Table.
using Leadtools;
using Leadtools.Dicom;
///
private void DicomSetStringValueTest()
{
DicomEngine.Startup();
DicomDataSet ds = new DicomDataSet();
string japaneseText1 = "亜美";
string japaneseText2 = "千香子";
string[] japaneseStrings = { japaneseText1, japaneseText2 };
DicomElement element;
// Example 1 - uses Specific Character Set Attribute (0008,0005) to set one string
ds.Reset();
element = ds.InsertElement(null, false, DicomTag.PatientName, DicomVRType.PN, false, 0);
ds.InsertElementAndSetValue(DicomTag.SpecificCharacterSet, "ISO_IR 192"); // Unicode in UTF-8
ds.SetStringValue(element, japaneseText1);
string result = ds.GetStringValue(element, 0);
Debug.Assert(result == japaneseText1);
// Example 2 - uses Specific Character Set Attribute (0008,0005) to set two strings
ds.Reset();
element = ds.InsertElement(null, false, DicomTag.OtherPatientNames, DicomVRType.PN, false, 0);
ds.InsertElementAndSetValue(DicomTag.SpecificCharacterSet, "ISO_IR 192"); // Unicode in UTF-8
ds.SetStringValue(element, japaneseStrings);
Debug.Assert(ds.GetStringValue(element, 0) == japaneseStrings[0]);
Debug.Assert(ds.GetStringValue(element, 1) == japaneseStrings[1]);
// Example 3 - pass in a DicomCharacterSet and set one string
ds.Reset();
element = ds.InsertElement(null, false, DicomTag.PatientName, DicomVRType.PN, false, 0);
ds.SetStringValue(element, japaneseText1, DicomCharacterSetType.UnicodeInUtf8);
result = ds.GetStringValue(element, 0);
Debug.Assert(result == japaneseText1);
// Example 4 -- pass in a DicomCharacterSet and set two strings
ds.Reset();
element = ds.InsertElement(null, false, DicomTag.OtherPatientNames, DicomVRType.PN, false, 0);
ds.SetStringValue(element, japaneseStrings, DicomCharacterSetType.UnicodeInUtf8);
Debug.Assert(ds.GetStringValue(element, 0) == japaneseStrings[0]);
Debug.Assert(ds.GetStringValue(element, 1) == japaneseStrings[1]);
// Example 5 -- uses Specific Character Set Attribute (0008,0005) to set one string using IntPtr
ds.Reset();
GCHandle pinnedArray = GCHandle.Alloc(japaneseText1, GCHandleType.Pinned);
IntPtr pointer = pinnedArray.AddrOfPinnedObject();
element = ds.InsertElement(null, false, DicomTag.PatientName, DicomVRType.PN, false, 0);
ds.InsertElementAndSetValue(DicomTag.SpecificCharacterSet, "ISO_IR 192"); // Unicode in UTF-8
ds.SetStringValuePtr(element, pointer, 1);
result = ds.GetStringValue(element, 0);
Debug.Assert(result == japaneseText1);
pinnedArray.Free();
DicomEngine.Shutdown();
}
SetStringValue(DicomElement,string) Method
SetStringValue(DicomElement,string,DicomCharacterSetType) Method
SetStringValue(DicomElement,string[]) Method
SetStringValue(DicomElement,string[],DicomCharacterSetType) Method
SetStringValuePtr(DicomElement,IntPtr,int) Method
SetStringValuePtr(DicomElement,IntPtr,int,DicomCharacterSetType) Method
SetBinaryValue(DicomElement,Byte[],Int32) Method
SetShortValue(DicomElement,Int16[],Int32) Method
SetIntValue(DicomElement,Int32[],Int32) Method
SetFloatValue(DicomElement,Single[],Int32) Method
SetDoubleValue(DicomElement,Double[],Int32) Method
SetDateValue(DicomElement,DicomDateValue[]) Method
SetTimeValue(DicomElement,DicomTimeValue[]) Method
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document